草庐IT

java 中构造器: this的两种用法

全部标签

javascript - 在其中一个原型(prototype)函数中调用 JavaScript 对象的构造函数是否正确?

我正在审查一位同事的JavaScript代码,他写了一个对象原型(prototype)函数,我认为它不符合面向对象编程的原则。Game.prototype.reset=function(){if(game.over){game.over=false;game=newGame(players);}}下面几行,游戏变量被声明为全局变量。vargame=newGame(players);那么,从其构造函数之一创建一个新的Game对象是否正确?代码完美运行。谢谢! 最佳答案 他不应该在原型(prototype)方法中引用变量game,因为g

javascript - 在 TypeScript 中动态返回一个类构造函数

我正在尝试在TypeScript中构建一种机制,以根据表示类名称的字符串参数返回类的新实例。基本上,我正在尝试创建一个工厂,只是我不太清楚如何在TypeScript中执行此操作。在纯JS中,我可以通过将所有类构造函数存储在一个键/值对象中并调用newClassDictionary[className]();来解决这个问题——这不是最可靠的解决方案,但它在这种情况下工作。我似乎无法获得类型和转换的正确组合来在TypeScript中完成此操作。有没有更好的办法?我在TypeScript中找不到工厂模式的任何示例,所以现在我只有一点switch语句,它丑陋且不灵活。

javascript - `this` 在全局上下文和内部函数中

根据thisexplanationinMDN:在全局上下文中,this指的是全局对象在函数上下文中,如果函数被直接调用,它又引用了全局对象然而,以下内容:varglobalThis=this;functiona(){console.log(typeofthis);console.log(typeofglobalThis);console.log('isthistheglobalobject?'+(globalThis===this));}a();...放在文件foo.js中产生:$nodejsfoo.jsobjectobjectisthistheglobalobject?false

javascript - Ember "this"在组件中未定义

我正在尝试制作一个进度条,它会随着更多挑战的完成而更新。但是,组件无法访问该属性,因为它是未定义的。我已经注入(inject)了一个服务,我正在尝试从该服务的一个属性创建一个计算属性。但是,除非在调试中,否则这始终是未定义的。importEmberfrom'ember';exportdefaultEmber.Component.extend({progress:0,game:Ember.inject.service(),events:this.get("game.challenges")});this怎么能在上面的代码中没有定义呢?它如何不绑定(bind)任何范围?我已经投入了这样的调

javascript - arguments 属性可以通过 this.some_function.arguments 访问吗?其实我无法解释?

我在读一本JavaScript书,我在读如何通过原型(prototype)扩展JavaScript数组的数组功能,然后我来到这个我无法理解的例子,也没有对它进行深入的解释,我不是能够理解:Array.prototype.some_function=function(){varargs=this.some_function.arguments;//1varargs_length=this.some_function.arguments.length;//2...}//some_function在这里我能够访问参数,但我不知道这是如何工作的,意思是this指的是我们调用此方法的对象(在此上

javascript - 构造函数中的事件处理程序与构造函数外的事件处理程序的行为不同

我有一个对象的两个实例,它们扩展了EventEmitter并监听名为finish的事件。如果我在构造函数之外设置事件处理程序,一切都会按预期进行。每个实例都会听到它触发的finish的出现。但是,如果我在构造函数中设置事件处理程序,则只有第二个创建的实例会听到事件并对事件使用react,或者看起来是这样。代码如下:varutil=require('util');varEventEmitter=require('events').EventEmitter;varfs=require('fs');varNEXT_ID=0;varMyEmitter=function(){EventEmitt

javascript - 如何在 typescript 中初始化构造函数中的常量字段?

我不知道这是否有值(value)。我只是好奇这是否可能?问题:如果可能,语法是什么在typescript的构造函数中初始化一个const字段?`exportclassGulpfile{privatedist:string;privatesrc:string;constructor(){constthis.dist='./dist/';this.src='./src'}} 最佳答案 你不能有常量类成员。主要是因为类成员总是通过this关键字引用,并且该引用始终可以更改。ES6也不支持。 关

javascript - 我什么时候需要使用 super(props) 将 prop 传递给 React 组件的构造函数?

这个问题在这里已经有了答案:What'sthedifferencebetween"super()"and"super(props)"inReactwhenusinges6classes?(10个答案)关闭6年前。很多时候我们在构造函数中发送props但我们从来没有在构造函数中的任何地方使用this.props那么为什么需要传递它以及何时需要这样做。classAppextendsReact.Component{constructor(props){super(props);//Whendoweneedtosendpropstotheconstructorthis.state={data:

javascript - 了解 Javascript 的 _this、不同类型的函数调用以及如何在函数内部调用函数?

我正在学习如何对现有的javascript代码进行逆向工程,并且遇到了一些问题,这是由于我不了解核心javascript的工作原理。下面是代码以及我的评论的屏幕截图。代码以声明varwarper开始。然后warper变量等于函数内的函数?为什么它不是通常调用的functionWarper(),而是在另一个函数中?我注意到了_this的使用。这与通常使用的常规this有何不同?#btn-submitid被设置为在点击时激活。我可以看到它调用了click_submit函数,但为什么它是Warper.prototype.click_submit而不是click_submit()?我的最后一个

javascript - 未捕获的 TypeError : this. 方法不是函数 - Node js 类导出

这个问题在这里已经有了答案:Howtoaccessthecorrect`this`insideacallback(13个答案)关闭5年前。我是node.js的新手,我正在尝试要求一个类。我用过https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes作为引用。但是,当我这样做时://talker.jsclassTalker{talk(msg){console.log(this.say(msg))vart=setTimeout(this.talk,5000,'helloagain');}say(msg){r